Separate Computation of Alias Information fior Reuse

نویسندگان

  • Mary Jean Harrold
  • Gregg Rothermel
چکیده

Interprocedural data flow information IS useful for many software testing and analysis techniques, including data flow testing, regression testing, program slicing, and impact analysis. For programs with aliases, these testing and analysis techniques can yield invalid results, unless the data flow information accounts for aliasing effects. Recent research provides algorithms for performing interprocedural data flow analysis in the presence of aliases; however, these algorithms are expensive, and achieve precise results only on complete programs. This paper presents an algorithm for performing alias analysis on incomplete programs that lets individual software components such as library routines, subroutines, or subsystems be independently analyzed. The paper also presents an algorithm for reusing the results of this separate analysis when the individual software components are linked with calling modules. Our algorithms let us analyze frequently used software components, such as library routines or classes, independently, and reuse the results of that analysis when analyzing calling programs, without incurring the expense of completely reanalyzing each calling program. Our algorithms also provide a way to analyze large systems incrementally.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Separate Computation of Alias Information for Reuse 1

Interprocedural data ow information is useful for many software testing and analysis techniques, including data ow testing, regression testing, program slicing, and impact analysis. For programs with aliases, these testing and analysis techniques can yield invalid results, unless the data ow information accounts for aliasing eeects. Recent research provides algorithms for performing interproced...

متن کامل

Detecting Strict Aliasing Violations in the Wild

Type-based alias analyses allow C compilers to infer that memory locations of distinct types do not alias. Idiomatic reliance on pointers on the one hand, and separate compilation on the other hand, together make it impossible to get this aliasing information any other way. As a consequence, most modern optimizing C compilers implement some sort of type-based alias analysis. Unfortunately, poin...

متن کامل

Lattice-Based Array Contraction: From Theory to Practice

We build on prior work on intra-array memory reuse, for which a general theoretical framework was proposed based on lattice theory. Intra-array memory reuse is a way of reducing the size of a temporary array by folding, thanks to affine mappings and modulo operations, reusing memory locations when they contain a value not used later. We describe the algorithms needed to implement such a strateg...

متن کامل

Reference Capabilities for Trait Based Reuse

The proliferation of shared mutable state in object-oriented programming complicates software development as two seemingly unrelated operations may interact via an alias and produce unexpected results. In concurrent programming this manifests itself as data-races. Concurrent objectoriented programming further suffers from the fact that code that warrants synchronisation cannot easily be disting...

متن کامل

An Effect System Combining Alias and Liveness for Explicit Memory Reuse

The garbage collection is a safe and efficient method for managing the heap. However it is not efficient for temporary storages that are allocated often and deallocated quickly. Reusing temporary storages without collecting garbages can be a remedy for such inefficiency. We present an effect system for checking whether every explicit memory reuse is safe. We abstract the heap by using symbolic ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013